package com.learn.spring.bean;

import org.springframework.beans.factory.FactoryBean;
import org.springframework.stereotype.Component;

/**
 * 实现 {@link FactoryBean} 完成 Bean 的注入
 * <p> {@link FactoryBean} 是 Spring 提供的工厂 Bean 的一个接口。
 * {@link FactoryBean#getObject()} 创建的具体 bean 对象的类型.
 * {@link FactoryBean#getObjectType()} 工厂 bean 具体创建具体对象是由此 getObject() 方法来返回的。
 * {@link FactoryBean#isSingleton()} 是否是单例的。
 */
@Component
public class MyFactoryBean implements FactoryBean {

    @Override
    public Object getObject() {
        return new User();
    }

    @Override
    public Class<?> getObjectType() {
        return User.class;
    }

}
